package com.atguigu.gmall.product.service.impl;

import com.atguigu.gmall.common.util.JsonUtil;
import com.atguigu.gmall.model.product.to.ValueSkuJsonTo;
import com.atguigu.gmall.model.product.vo.SpuSaleInfoVo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.atguigu.gmall.model.product.entity.SpuSaleAttr;
import com.atguigu.gmall.product.service.SpuSaleAttrService;
import com.atguigu.gmall.product.mapper.SpuSaleAttrMapper;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author lyd
 * @description 针对表【spu_sale_attr(spu销售属性)】的数据库操作Service实现
 * @createDate 2025-03-10 20:57:08
 */
@Service
public class SpuSaleAttrServiceImpl extends ServiceImpl<SpuSaleAttrMapper, SpuSaleAttr>
        implements SpuSaleAttrService {

    @Override
    public List<SpuSaleInfoVo> getSpuSaleAttrList(Long spuId) {
        return baseMapper.getSpuSaleAttrList(spuId);
    }

    @Override
    public List<SpuSaleInfoVo> getSpuSaleAttrListBySkuId(Long spuId, Long skuId) {
        return baseMapper.getSpuSaleAttrListBySkuId(spuId, skuId);
    }

    @Override
    public String getValueSkuJson(Long spuId) {
        List<ValueSkuJsonTo> valueSkuJson = baseMapper.getValueSkuJson(spuId);
//        HashMap<String, Long> map = new HashMap<>();
//        valueSkuJson.forEach(item->{
//            map.put(item.getAttrValueId(),item.getSkuId());
//        });
        Map<String, Long> valueMap = valueSkuJson.stream()
                .collect(Collectors.toMap(ValueSkuJsonTo::getAttrValueId, ValueSkuJsonTo::getSkuId));
        //将map转为json字符串
        String str = JsonUtil.objToJsonStr(valueMap);
        return str;
    }
}




